#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>
//实现一个通讯录；
//
//通讯录可以用来存储1000个人的信息，每个人的信息包括：姓名、性别、年龄、电话、住址
//
//提供方法：
//
//添加联系人信息
//删除指定联系人信息
//查找指定联系人信息
//修改指定联系人信息
//显示所有联系人信息
//清空所有联系人
//以名字排序所有联系人

#define MAX 1000

#define NAME 20
#define SEX  6
#define TEL  12
#define ADDRESS 30

#define INITIAL_MAN 5

//联系人信息
typedef struct Message {
	char name[NAME];
	char sex[SEX];
	int age;
	char tel[TEL];
	char address[ADDRESS];
}Message;

//通讯录
typedef struct Con {
	Message *data;
	int sz;
	int capacity;
}Con;

//枚举
enum Way
{
	Exit,
	Add,
	Del,
	Search,
	Modify,
	Display,
	Empty,
	Sort_name
};



void menu();
void Print_head();
void Init_Con(Con* ps);
void Add_message(Con* ps);
void Display_book(const Con* ps);
void Delete_message(Con* ps);
int Search_message(const Con* ps);
void Modify_menu();
void Modify_message(Con* ps);
void Empty_book(Con* ps);
void modify_sex(Con* ps, int index);
void modify_age(Con* ps, int index);
void modify_tel(Con* ps, int index);
void modify_address(Con* ps, int index);
int cmp(const void* elm1, const void* elm2);
Con* sort_name(Con* ps);
void Expasion_capacity(Con* ps);
void Release_con(Con* ps);